博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jfinal初接触,一个简单的文件上传例子
阅读量:4587 次
发布时间:2019-06-09

本文共 2387 字,大约阅读时间需要 7 分钟。

写了个上传的小例子。

从jfinal官网下载jfinal-1.8_demo_for_jsp.zip

然后下载jfinal-1.8-lib.zip

按要求删掉该删除的,引入一些包,之后的项目结构:

 

DemoConfig.java中配置路由,只留下了根路径:

/**     * 配置路由     */    public void configRoute(Routes me) {        me.add("/", CommonController.class);        //me.add("/blog", BlogController.class);    }

CommonController.java :

package com.demo.common;import java.io.File;import java.io.IOException;import java.util.UUID;import com.jfinal.core.Controller;import com.jfinal.upload.UploadFile;/** * CommonController */public class CommonController extends Controller {        public void index() {        render("/index.jsp");    }        public void uploadFile(){                    UploadFile uploadFile=this.getFile();                String fileName=uploadFile.getOriginalFileName();                        File file=uploadFile.getFile();            FileService fs=new FileService();            File t=new File("S:\\file\\"+UUID.randomUUID().toString());        try {            t.createNewFile();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        fs.fileChannelCopy(file, t);        file.delete();        this.renderHtml("success,back");    }        }

index.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

FileService.java :

package com.demo.common;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.nio.channels.FileChannel;public class FileService {    public void fileChannelCopy(File s, File t) {        FileInputStream fi = null;        FileOutputStream fo = null;        FileChannel in = null;        FileChannel out = null;        try {            fi = new FileInputStream(s);            fo = new FileOutputStream(t);            in = fi.getChannel();// 得到对应的文件通道            out = fo.getChannel();// 得到对应的文件通道            in.transferTo(0, in.size(), out);// 连接两个通道,并且从in通道读取,然后写入out通道        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                fi.close();                in.close();                fo.close();                out.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }}

没有太多需要说明的,参考着官方的文档就可以了。

 

转载于:https://www.cnblogs.com/acehalo/p/3915720.html

你可能感兴趣的文章
一篇和Redis有关的锁和事务的文章
查看>>
delphi验证手机号码地址的正则表达式验证function
查看>>
sublime 我的快捷键
查看>>
asp.net MVC日志插件Log4Net学习笔记一:保存日志到本地
查看>>
9-16Jenkins-1第一个任务
查看>>
HTML 标签
查看>>
8 款为 WordPress 文章生成缩略图的插件
查看>>
bzoj1396 识别子串
查看>>
Android开发六:常用控件3--ListView(一)
查看>>
Wormholes (bellman)
查看>>
[ 产品经理 ] 产品经理的一天工作内容
查看>>
依赖倒转原则
查看>>
Dubbo分布式服务框架入门(附project)
查看>>
A2-02-14.DML- MySQL LEFT JOIN
查看>>
char与CString相互转换
查看>>
jQuery Ajax总结
查看>>
制作Visual Studio 2019 (VS 2019) 离线安装包
查看>>
JavaScript高级程序设计学习笔记--变量、作用域和内存问题
查看>>
Smack 结合 Openfire服务器,建立IM通信,发送聊天消息
查看>>
所闻所获4:下拉刷新控件2
查看>>